package com.shenfa.dao;

import java.sql.SQLException;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import com.ibatis.sqlmap.client.SqlMapClient;
import com.shenfa.bean.SystemUserCode;
import com.shenfa.tools.SteelTools;

/**
 * 系统管理-用户参数管理 DAO
 * 
 * @author 张瑶
 * @date 2011-08-25
 */
public class SystemUserCodeDao {

	@Autowired
	private SqlMapClient sqlMapClient;

	/**
	 * 模糊查询用户参数信息
	 * 
	 * @param systemUserCode
	 *            系统管理-用户参数管理，与T_S_CODE[用户参数表]内部使用 对应
	 * @param skip
	 *            分页使用
	 * @param max
	 *            分页使用
	 * @return 用户参数信息
	 */
	@SuppressWarnings("unchecked")
	public List<SystemUserCode> selectSystemUserCode(SystemUserCode systemUserCode, int skip, int max) {

		List<SystemUserCode> list = null;
		try {
			list = sqlMapClient.queryForList("system_manager.selectSystemUserCode", systemUserCode, skip, max);
		} catch (SQLException e) {
			SteelTools.log(e.getMessage());
		}
		return list;
	}
	public int getCount(SystemUserCode systemUserCode) {

		int a;
		try {
			a =(Integer) sqlMapClient.queryForObject("system_manager.getCount", systemUserCode);
		} catch (SQLException e) {
			SteelTools.log(e.getMessage());
			return -1;
		}
		return a;
	}

	/**
	 * 查询所有用户代码，生成store
	 * 
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public List<SystemUserCode> getSysStore(){
		List<SystemUserCode> list = null;
		try {
			list = sqlMapClient.queryForList("system_manager.getSysStore");
		} catch (SQLException e) {
			SteelTools.log(e.getMessage());
		}
		return list;
	}
	
	/**
	 * 增加用户参数信息
	 * 
	 * @param systemUserCode
	 *            系统管理-用户参数管理，与T_S_CODE[用户参数表]内部使用 对应
	 * @return 增加是否成功，返回NULL则失败。
	 */
	public int insertSystemUserCode(SystemUserCode systemUserCode) {
		try {
			sqlMapClient.insert("system_manager.insertSystemUserCode", systemUserCode);
			return 1;
		} catch (SQLException e) {
			SteelTools.log(e.getMessage());
			return 0;
		}
	}

	/**
	 * 更新用户参数信息
	 * 
	 * @param systemUserCode
	 *            系统管理-用户参数管理，与T_S_CODE[用户参数表]内部使用 对应
	 * @return 0 则表示更新失败。
	 */
	public int updateSystemUserCode(SystemUserCode systemUserCode) {
		try {
			sqlMapClient.update("system_manager.updateSystemUserCode", systemUserCode);
			return 1;
		} catch (SQLException e) {
			e.printStackTrace();
			return 0;
		}
	}

	/**
	 * 刪除用户参数信息
	 * 
	 * @param systemUserCode
	 *            系统管理-用户参数管理，与T_S_CODE[用户参数表]内部使用 对应
	 * @return 0 则表示刪除失败。
	 */
	public int deleteSystemUserCode(SystemUserCode systemUserCode) {
		try {
			sqlMapClient.delete("system_manager.deleteSystemUserCode", systemUserCode);
			return 1;
		} catch (SQLException e) {
			SteelTools.log(e.getMessage());
			return 0;
		}
	}

}
